﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BIOrdenes;
using System.Data;
using System.Runtime.Serialization;

namespace BLGestionOrdenes
{
    [DataContract]
    public class MenuAcceso: IMenuAcceso
    {

        internal MenuAcceso(DataRow lpDataRow)
        {
            _nombre = lpDataRow["nombre"].ToString();
            _permisoDb = int.Parse(lpDataRow["permiso_id"].ToString());
            _permisoEnum = AccessTypeManager.Cast(_permisoDb);
        }

        #region IMenuAcceso Members

        private string _nombre;
        [DataMember]
        public string Nombre
        {
            get { return _nombre; }
        }

        private int _permisoDb;
        [DataMember]
        public int PermisoDb
        {
            get { return _permisoDb; }
        }

        private AccessTypeEnum _permisoEnum;
        [DataMember]
        public AccessTypeEnum PermisoEnum
        {
            get { return _permisoEnum; }
        }

        #endregion
    }

    [DataContract]
    public class MenuAccesoCollection : List<MenuAcceso>
    {
        public void LoadData(DataTable lpData)
        {
            if (lpData.Rows.Count == 0)
                throw new InvalidOperationException("Menu information is missing");

             foreach (DataRow lvItem in lpData.Rows)
                 this.Add(new MenuAcceso(lvItem)); 
        }
    }
}
